iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
0

淺拷貝與深拷貝

為什麼要複製陣列?

因為陣列有可能需要使用陣列資料但不希望更動原本的資料

為什麼不想動到原本的資料?

因為可能會動到陣列資料只是一種狀態,異動狀態回來後,希望是原始的資料,EX:快速選單反白功能

由於只要不是基本資料型別,物件間傳值都是傳位址,這樣一來更動就會動到原始資料了,故現在來找複製的方式

以上有3種拷貝方式

[…array] , .slice(0) 此方式都是只複製基本資料型別,只要陣列中有其他陣列或物件,還是會傳遞位置使用 JSON.parse( JSON.stringify( string ) ) ,會連裡面所有陣列與物件都複製一份新的,也就是異動不會在動到原始資料,最後$.extend是最深的拷貝他會連整個原形鍊,都複製過來。,也就是說如果用第2種JSON轉換,複製過來去改原型,也會被跟著改,若使用$.extend則是一份全新的(但使用情境極少)


上一篇
Day 22 解構
下一篇
Day 24 Preflight request
系列文
30 天 node.js 學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言